package com.coolwen.service;


import com.coolwen.entity.Group;

import java.util.List;


/**
 * 团操作接口
 * Created by coolwen on 2016-11-10.
 */
public interface GroupService {

    /**
     * 查找某固定id的团
     * @param groupId 团id
     * @return 团实体
     */
    Group findByGroupId(Integer groupId);

    /**
     * 查找指定属性为指定值的团
     * @param requestType 指定属性
     * @param requestValue 指定值
     * @return 存放查找到的团实体的List
     */
    List<Group> findGroupByRequest(String requestType,String requestValue);

    /**
     * 删除指定groupId的团记录
     * @param groupId 团id
     * @return 操作结果
     */
    int deleteByGroupId(Integer groupId);

    /**
     * 根据实体对象Group的groupId更新其它属性
     * @param group 团实体
     * @return 操作结果
     */
    int updateGroupByGroupId(Group group);

    /**
     * 添加一条团记录，通过一个团的实体
     * @param group 团实体
     * @return 操作结果
     */
    int addGroup(Group group);

    /**
     * 查找所有的团记录
     * @return 存放团实体的列表
     */
    List<Group> findAllGroup();

    /**
     * 得到某用户发起的所有团
     * @param initiatorId
     * @return
     */
    List<Group> findByInitiatorId(Integer initiatorId);

    /**
     * 得到某类型的所有团
     * @param typeId
     * @return
     */
    List<Group> findByTypeId(Integer typeId);

    /**
     * 得到某用户加入的所有团
     * @param userId
     * @return
     */
    List<Group> findByUserId(Integer userId);

    /**
     * 得到团状态和发起用户id为固定值的团
     * @param groupState
     * @param groupInitiatorId
     * @return
     */
    List<Group> findByStateAndInitiatorId(Integer groupState,Integer groupInitiatorId);

    /**
     * 得到团状态和参与用户id为固定值的团
     * @param groupState
     * @param userId
     * @return
     */
    List<Group> findByStateAndUserId(Integer groupState,Integer userId);



}
